// This code is generated automatically by Exentials SnwConnector
namespace Exentials.Snw.Functions
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Exentials.Snw;
    using Exentials.Snw.SnwConnector;
    using Exentials.Snw.Functions;
    using Exentials.Snw.Structures;
    
    
    public sealed class BapiCcodeGetFirstdayPeriod : Exentials.Snw.SnwConnector.SnwFunction, Exentials.Snw.SnwConnector.IImport<BapiCcodeGetFirstdayPeriod.ImportParameters>, Exentials.Snw.SnwConnector.IExport<BapiCcodeGetFirstdayPeriod.ExportParameters>
    {
        
        private ImportParameters _import;
        
        private ExportParameters _export;
        
        public BapiCcodeGetFirstdayPeriod(Exentials.Snw.SnwConnector.SnwConnection connection) : 
                base("BAPI_CCODE_GET_FIRSTDAY_PERIOD", connection)
        {
        }
        
        public ImportParameters Import
        {
            get
            {
                if ((this._import == null))
                {
                    this._import = new ImportParameters(this);
                }
                return this._import;
            }
        }
        
        public ExportParameters Export
        {
            get
            {
                if ((this._export == null))
                {
                    this._export = new ExportParameters(this);
                }
                return this._export;
            }
        }
        
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
        public sealed class ImportParameters : Exentials.Snw.SnwConnector.SnwParametersContainer
        {
            
            public ImportParameters(BapiCcodeGetFirstdayPeriod container) : 
                    base(container)
            {
            }
            
            /// <summary>
            /// Company Code
            /// </summary>
            public string Companycodeid
            {
                get
                {
                    return this.GetParameter<string>("COMPANYCODEID", 4, 0);
                }
                set
                {
                    this.SetParameter("COMPANYCODEID", value, 4, 0);
                }
            }
            
            /// <summary>
            /// Period
            /// </summary>
            public Exentials.Snw.SnwConnector.SnwNumeric FiscalPeriod
            {
                get
                {
                    return this.GetParameter<Exentials.Snw.SnwConnector.SnwNumeric>("FISCAL_PERIOD", 2, 0);
                }
                set
                {
                    this.SetParameter("FISCAL_PERIOD", value, 2, 0);
                }
            }
            
            /// <summary>
            /// Fiscal Year
            /// </summary>
            public Exentials.Snw.SnwConnector.SnwNumeric FiscalYear
            {
                get
                {
                    return this.GetParameter<Exentials.Snw.SnwConnector.SnwNumeric>("FISCAL_YEAR", 4, 0);
                }
                set
                {
                    this.SetParameter("FISCAL_YEAR", value, 4, 0);
                }
            }
        }
        
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
        public sealed class ExportParameters : Exentials.Snw.SnwConnector.SnwParametersContainer
        {
            
            private Bapireturn1 _return;
            
            public ExportParameters(BapiCcodeGetFirstdayPeriod container) : 
                    base(container)
            {
            }
            
            /// <summary>
            /// First Day of Period
            /// </summary>
            public Exentials.Snw.SnwConnector.SnwDate FirstDayOfPeriod
            {
                get
                {
                    return this.GetParameter<Exentials.Snw.SnwConnector.SnwDate>("FIRST_DAY_OF_PERIOD", 8, 0);
                }
                set
                {
                    this.SetParameter("FIRST_DAY_OF_PERIOD", value, 8, 0);
                }
            }
            
            /// <summary>
            /// Return Code
            /// </summary>
            public Bapireturn1 Return
            {
                get
                {
                    if ((this._return == null))
                    {
                        this._return = this.GetParameter<Bapireturn1>("RETURN", 470, 0);
                    }
                    return this._return;
                }
            }
        }
    }
}
